#pragma once

struct D2DPrecomputeParams
{
public: 
	D2DPrecomputeParams(struct IPALAcceleratedGraphicsFactory * pFactory, struct IDirtyRegionAccumulator * pDirtyRegion);
	struct IPALAcceleratedGraphicsFactory * GetFactory();
	struct IDirtyRegionAccumulator * GetDirtyRegionAccumulator();
	void SetAddDirtyRegion(XUINT32);
	XBOOL ShouldAddDirtyRegion();
	void Reset();
	void AddSurfaceSpaceRect(const struct XRECTF_RB &);
	void GetCacheSize(XINT32 & width, XINT32 & height);
	void GetCacheOffsets(XINT32 & offsetX, XINT32 & offsetY);
private: 
	struct IPALAcceleratedGraphicsFactory * m_pFactoryNoRef;
	struct IDirtyRegionAccumulator * m_pDirtyRegionNoRef;
	XBOOL m_fShouldAddDirtyRegion;
	struct XRECTF_RB m_cacheSize; 
};